<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <!-- <script>
        function fn(a) {
            console.log(a);
            var a = 123; //预编译变量 声明已经提升，执行的时候直接赋值
            console.log(a);
            function a() {}  //执行直接跳过
            console.log(a);
            var b = function(){} 
            console.log(b);
            function d(){}
        }
        fn(1);
        // 预编译发生在函数执行的前一刻

        // 1. 创建AO对象  Activation Object  执行期上下文

        // AO  {
        //     a : function a() {},   //1      // 初始值为undefined
        //     b : undefined,
        //     d ：function d(){}
        // }

    </script> -->

    <!-- 第二个例子 -->
    <script>
        function test(a, b) {
            console.log(a);
            c = 0;
            var c;
            var c = 2;
            a = 3;
            b = 2;
            console.log(b);
            function b() {}
            function d() {}
            console.log(b);
        }

        test(1);

        // AO = {
        //     a: 1
        //     b: function b() {}
        //     c: 
        //     d: function d() {}
        // }



    </script>
</body>
</html>